package com.ys.service.storage;

import com.ys.entity.storage.*;
import com.ys.vo.R;

import java.util.List;

public interface FbaInboundApiService {

    //按箱发货
    R boxDelivery(TccFbaPlan tccFbaPlan);

    //按SUK发货
    R skuDelivery(TccFbaPlan tccFbaPlan);

    //按SUK发货-货件预览
    R searchFlow(String bid);

    //按SUK发货-货件预览详情
    R searchFlowDetail(String bid,String shipmentId);

    //货件取消
    R cancelInboundPlan(TccFbaPlan tccFbaPlan);

    //货件放置选项
    R generatePlacementOptions(TccFbaBoxUp tccFbaBoxUp,int generateNo);

    //提供箱子信息
    R setPackingInformation(TccFbaBoxUp tccFbaBoxUp);

    //手动通过fba编号获取fba信息
    R getShipments(TccFbaBoxUp tccFbaBoxUp,String shipmentId);

    //请求api设置放置选项
    R confirmPlacementOption(TccFbaPlan tccFbaPlan,String placementOptionId);

    //箱标打印
    R getLabels(TccFbaDeliver tccFbaDeliver, TccFbaDeliverItem tccFbaDeliverItem);

    //装箱单请求api设置放置选项
    R fbaBoxConfirmPlacementOption(TccFbaBoxUp tccFbaBoxUp,String placementOptionId);

    //获取运输选项与交付窗口
    R generateTransportationAndDeliveryWindow(TccFbaBoxUp tccFbaBoxUp,String placementOptionId);

    //设置运输选项与交付窗口
    R confirmTransportationAndDeliveryWindow(TccFbaBoxUp tccFbaBoxUp,String placementOptionId);


    //设置交付窗口
    R confirmTransportation(TccFbaBoxUp tccFbaBoxUp,String placementOptionId);


    //设置运输选项
    R confirmDeliveryWindow(TccFbaBoxUp tccFbaBoxUp,String placementOptionId);


    //按箱自动，重新获取FBA信息
    R reSearchShipments(String boxUpBid,TccFbaPlan tccFbaPlan,String placementOptionId);

    //按箱自动，匹配箱子信息
    R getListShipmentBoxesResponse(TccFbaPlan tccFbaPlan);

    //上传追踪编号
    void updateShipmentTrackingDetails(TccFbaPlan tccFbaPlan);
}
